###Function###
Send

###Description###
Sendet einen oder mehrere simulierte Tastendrcke an das aktive Fenster.

###Syntax###
Send ( "keys" [, flag = 0] )


###Parameters###
@@ParamTable@@
keys
	Die Folge von Tastendrcken, die gesendet werden soll.
flag
	[optional] Kennzeichnet, wie der "keys"-Parameter verarbeitet wird:
	 	0 = Text beinhaltet spezielle Zeichen, wie + und !, die fr SHIFT- (=UMSCHALT) und ALT-Tasten stehen (Standard).
		1 = Tasten ("keys") werden so wie angegeben gesendet.
@@End@@

###ReturnValue###
Keine.


###Remarks###
Siehe <a href="../appendix/SendKeys.htm">Anhang</a> fr einige Tipps zur Verwendung von <a href="Send.htm">Send()</a>. AutoIt kann alle ASCII und erweiterte ASCII Zeichen (0-255) senden. Um UNICODE Zeichen zu senden, muss die "ASC" Option  mit dem Code des Zeichens, das gesendet werden soll, benutzt werden (siehe {ASC} am Ende der untenstehenden Tabelle).

Die <a href="Send.htm">Send()</a> Befehlssyntax ist hnlich dem von ScriptIt und Visual Basic verwendetem "SendKeys"-Befehl. Die Zeichen werden wie geschrieben gesendet, mit Ausnahme der folgenden Zeichen:

'!'
Dies weist AutoIt an, den ALT Tastendruck zu senden, folglich wrde <a href="Send.htm">Send</a>("Das ist ein Text!a") die Tastendrcke "Das ist ein Text" senden und dann die Tastendrcke "ALT+a".

Nebenbei sind einige Programme sehr empfindlich bezglich Grobuchstaben und ALT-Taste, z.B. "!A" ist unterschiedlich zu "!a". Der erste Ausdruck bewirkt ALT+SHIFT+A, der zweite ist ALT+a. Im Zweifelsfall benutzt man die Kleinschreibung!

'+'
Dies weist AutoIt an, den SHIFT-(=UMSCHALT)-Tastendruck zu senden, folglich wrde <a href="Send.htm">Send</a>("Hell+o") den Text "HellO" senden. <a href="Send.htm">Send</a>("!+a") wrde "ALT+SHIFT+a" senden.

'^'
Dies weist AutoIT an, den CTRL (=STRG)-Tastendruck zu senden, folglich wrde <a href="Send.htm">Send</a>("^!a") "STRG+ALT+a" senden.

Bemerkung: Einige Programme reagieren sehr empfindlich auf Gro-/Kleinschreibung (Case sensitive) und STRG-Tastendrcke, z.B. ist "^A" unterschiedlich zu "^a". Der erste Ausdruck sendet STRG+SHIFT+A, der zweite sendet STRG+a. Im Zweifelsfall benutzt man die Kleinschreibung!

'#'
Die Hash (Raute oder Doppelkreuz)-Taste simuliert das Drcken der Windows-Taste. Folglich wrde <a href="Send.htm">Send</a>("#r") Win+r senden und damit die Run Dialogbox (Ausfhren-Dialog) aufrufen.

Man kann "SendCapslockMode" so einstellen, dass die CAPSLOCK-Taste (FESTSTELLTASTE) beim Start einer <a href="Send.htm">Send()</a> Funktion abgeschaltet wird und nach Beenden wieder zurckgesetzt wird.
Wenn aber ein Anwender die SHIFT-Taste beim Beginn einer <a href="Send.htm">Send()</a> Funktion gedrckt hlt, knnte der Text in Grobuchstaben gesendet werden.
Eine Vermeidungsmglichkeit ist Send("{SHIFTDOWN}{SHIFTUP}") vor dem eigentlichen <a href="Send.htm">Send()</a> Befehl zu senden.

Bestimmte Tastaturen, wie z.B. die tschechische, senden unterschiedliche Zeichen, je nachdem, ob die SHIFT- oder FESTSTELL-Taste bettigt ist. Nach der AutoIt-Arbeitsweise werden die Zeichen der FESTSTELL-Taste als SHIFT-Zeichen gesendet und deshalb <b>kann dieses Verhalten nicht simuliert werden</b>.
 
Bestimmte spezielle Tastendrcke mssen in geschweiften Klammern gesendet werden:

Wichtig : Windows verbietet das Senden der Tastenkombination "STRG-ALT-DEL"!

@@StandardTable1@@
<b><a href="Send.htm">Send()</a> Befehl (wenn Flag = 0)</b>	<b>Resultierender Tastendruck</b>
{!}	!
{#}	#
{+}	+
{^}	^
{{}	{
{}}	}
{SPACE}	SPACE (Leertaste)
{ENTER}	Eingabetaste auf der Haupttastatur
{ALT}	ALT
{BACKSPACE} oder {BS}	BACKSPACE (Rcktaste)
{DELETE} oder {DEL}	DELETE Entfernen (Entf)
{UP}	Nach-Oben-Taste
{DOWN}	Nach-Unten-Taste
{LEFT}	Nach-Links-Taste
{RIGHT}	Nach-Rechts-Taste
{HOME}	HOME (Pos1  Taste)
{END}	END (Ende - Taste)
{ESCAPE} oder {ESC}	ESCAPE- Taste
{INSERT} oder {INS}	INS (EINFGEN (Einfg)-Taste)
{PGUP}	PageUp (Bild-Auf-Taste)
{PGDN}	PageDown (Bild-Ab-Taste)
{F1} - {F12}	Funktionstasten
{TAB}	TAB(Tabulator  Taste)
{PRINTSCREEN}	Druck-Taste
{LWIN}	linke Windows Taste
{RWIN}	rechte Windows Taste
{NUMLOCK on}	NUMLOCK (Num)-Taste (on/off/toggle)
{CAPSLOCK off}	CAPSLOCK-Taste (FESTSTELLTASTE) (on/off/toggle)
{SCROLLLOCK toggle}	ROLLEN-Taste (on/off/toggle)
{BREAK}	STRG+Break = STRG+UNTERBRECHUNG Taste
{PAUSE}	PAUSE-Taste

{NUMPAD0} - {NUMPAD9}	Ziffernblock 0-9 (Numpad = numerisches Tastenfeld)
{NUMPADMULT}	Multiplizieren auf Numpad
{NUMPADADD}	Addieren auf Numpad
{NUMPADSUB}	Subtrahieren auf Numpad
{NUMPADDIV}	Dividieren auf Numpad
{NUMPADDOT}	Punkt (Komma) auf Numpad
{NUMPADENTER}	Eingabe-Taste auf Numpad
{APPSKEY}	Windows-Programm Taste
{LALT}	Linke ALT-Taste
{RALT}	Rechte ALT-Taste
{LCTRL}	Linke STRG-Taste
{RCTRL}	Rechte STRG-Taste
{LSHIFT}	Linke Shift-Taste
{RSHIFT}	Rechte Shift-Taste
{SLEEP}	Computer PAUSE Taste
{ALTDOWN}	Hlt die ALT-Taste gedrckt, bis {ALTUP} gesendet wird
{SHIFTDOWN}	Hlt die SHIFT-Taste gedrckt, bis {SHIFTUP} gesendet wird
{CTRLDOWN}	Hlt die STRG-Taste gedrckt, bis {CTRLUP} gesendet wird
{LWINDOWN}	Hlt die linke Windows-Taste gedrckt, bis {LWINUP} gesendet wird
{RWINDOWN}	Hlt die rechte Windows-Taste gedrckt, bis {RWINUP} gesendet wird
{ASC nnnn}	Sendet die ALT+nnnn ASCII-CODE-Tastenkombination
{BROWSER_BACK}	Whlt den Browser-Button "Zurck"
{BROWSER_FORWARD}	Whlt den Browser-Button "Vorwrts"
{BROWSER_REFRESH}	Whlt den Browser-Button "Aktualisieren"
{BROWSER_STOP}	Whlt den Browser-Button "Stop"
{BROWSER_SEARCH}	Whlt den Browser-Button "Suche"
{BROWSER_FAVORITES}	Whlt den Browser-Button "Favoriten"
{BROWSER_HOME}	Startet den Browser und geht zur Startseite
{VOLUME_MUTE}	Stellt Lautsprecher auf Stumm
{VOLUME_DOWN}	Reduziert die Lautstrke
{VOLUME_UP}	Vergrert die Lautstrke
{MEDIA_NEXT}	Whlt den nchsten Track im Media Player
{MEDIA_PREV}	Whlt den vorhergehenden Track im Media Player
{MEDIA_STOP}	Stoppt Media Player
{MEDIA_PLAY_PAUSE}	Wiedergabe/Pause Media Player
{LAUNCH_MAIL}	Startet die Standard-E-Mail-Anwendung
{LAUNCH_MEDIA}	Startet den Media Player
{LAUNCH_APP1}	Startet das Anwender-Programm 1
{LAUNCH_APP2}	Startet das Anwender-Programm 2
@@End@@

Um z.B. den Wert A als ASCII-Code zu senden (man drckt stndig die ALT Taste und gibt am Nummernblock die Ziffern 065 ein):
	<a href="Send.htm">Send</a>("{ASC 065}")

Es knnen auch mehrere verschiedene ASCII-Zeichen, mit einem Send-Befehl, an ein Control gesendet werden, z.B.
	<a href="Send.htm">Send</a>("{ASC 067}{ASC 058}{ASC 092}")    ; Sendet C:\ an das Control.

(wenn man einen zweistelligen ASCII-Code hat, muss eine 0 vorangestellt werden (z.B. 065), andernfalls wird die veraltete Codepage 437 verwendet.)

Um UNICODE Zeichen zu senden, gibt man den Code entweder dezimal oder in hex ein, als Beispiel ein chinesisches Zeichen: 
	<a href="Send.htm">Send</a>("{ASC 2709}") oder <a href="Send.htm">Send</a>("{ASC 0xA95}")


Einzelne Tastendrcke knnen mehrfach wiederholt werden, z.B.
	<a href="Send.htm">Send</a>("{DEL 4}")    ;Drckt 4 mal die DEL (Entf-) Taste
	<a href="Send.htm">Send</a>("{S 30}")      ;Sendet 30 mal ein S
	<a href="Send.htm">Send</a>("+{TAB 4}")   ;Drckt 4 mal SHIFT+TAB 

Die Taste wird mindestens ein Mal gesendet, auch wenn als Zahl Null angegeben wird.

Um eine Taste gedrckt zu lassen:
	<a href="Send.htm">Send</a>("{a down}")    ;Hlt die Taste A gedrckt
	<a href="Send.htm">Send</a>("{a up}")        ;Lsst die Taste wieder los

Um den Status der Capslock, Numlock oder Scrolllock Taste zu setzen:
	<a href="Send.htm">Send</a>("{NumLock on}")        ;Schaltet die  NumLock Taste  ein
	<a href="Send.htm">Send</a>("{CapsLock off}")      ;Schaltet die  CapsLock Taste aus
	<a href="Send.htm">Send</a>("{Scrolllock toggle}") ;ndert den Zustand der  Scrolllock Taste (wenn die Taste eingeschaltet ist, wird sie ausgeschaltet bzw. umgekehrt)

Will man einen Zhler als Variable vordefinieren, dann benutzt man das so:
	$n = 4
	<a href="Send.htm">Send</a>("+{TAB " & $n & "}")

Will man z.B. den ASCII-Code "A" vier Mal senden, dann probiert man das hier:
	$x = <a href="Chr.htm">Chr</a>(65)
	<a href="Send.htm">Send</a>("{" & $x & " 4}")

Die LAPTOP-Taste "Fn" kann leider nicht simuliert werden.

Bemerkung:  Wenn das Flag auf 1 gesetzt ist, dann sind die o.g. speziellen Prozeduren ausgeschaltet.
Dies ist sinnvoll, wenn man einen Text, der aus einer Variablen stammt, senden will und dieser Text exakt gleich gesendet werden soll. 

Beispiel: ffnet die Ordneroptionen (in der Systemsteuerung) und versucht folgendes: 
@@StandardTable1@@
<a href="Send.htm">Send</a>("{TAB}")	Springt zum nchsten Button oder nchster  Checkbox, etc. 
<a href="Send.htm">Send</a>("+{TAB}")	Springt zum vorhergehenden Button oder  Checkbox, etc.
<a href="Send.htm">Send</a>("^{TAB}")	Springt zum nchsten WindowTab (bei einem Fenster mit mehreren TABs, z.B. Firefox) 
<a href="Send.htm">Send</a>("^+{TAB}")	Springt zum vorhergehenden WindowTab. 
<a href="Send.htm">Send</a>("{SPACE}")	Kann verwendet werden, um den Zustand einer Checkbox zu wechseln oder einen Button anzuklicken. 
<a href="Send.htm">Send</a>("{+}")	Setzt einen Haken (Kreuz, etc.) in der Checkbox (wenn es eine echte Checkbox ist!!) 
<a href="Send.htm">Send</a>("{-}")	Lscht den Haken (Kreuz, etc.) in der Checkbox
<a href="Send.htm">Send</a>("{NumPadMult}")	Klappt alle Ebenen einer Ordnerstruktur im Explorer (vom Typ SysTreeView32) auf.
@@End@@

Man benutzt die ALT-Taste auch, um Mens/ Untermens zu steuern, zum Beispiel bei einem geffneten NotePad:
<a href="Send.htm">Send</a>("!d")  	Sendet Alt+d, (ffnet im Notepad das Datei Men).

@@StandardTable1@@
<a href="Send.htm">Send</a>("{DOWN}")	Fhrt runter im Men. 
<a href="Send.htm">Send</a>("{UP}")	Fhrt rauf im Men.
<a href="Send.htm">Send</a>("{LEFT}")	Fhrt nach links in ein neues Men oder ffnet ein Untermen.
<a href="Send.htm">Send</a>("{RIGHT}")	Fhrt nach rechts in ein neues Men oder schliet ein Untermen.
@@End@@
Eine komplette Liste der Tastaturkrzel findet man in der Windows-Hilfe (Win+F1), falls man nicht wei, wie wichtig ALT+F4, STRG+C oder STRG+V etc... sind.

Wenn man ein Skript auf einem Remotecomputer durch ein Programm wie psexec (www.sysinternals.com) oder beyondexec (www.beyondlogic.org) ausfhren lsst, ist es notwendig (insbesondere dann, wenn Tastendrcke an ein Programm gesendet werden sollen, das per Skript mittels <a href="Run.htm">Run()</a> Funktion gestartet wird), <b><a href="ControlSend.htm">ControlSend()</a></b> oder ControlXXX-Funktionen zu benutzen, um eine direkte Kommunikation mit der Steuerung herzustellen. Der <a href="Send.htm">Send</a>-Befehl, auch mit der Option <a href="AutoItSetOption.htm">Opt</a>("SendAttachMode",1), funktioniert hier nicht.
Um bessere Rechte auf dem Remote-Computer beim Senden zu haben, benutzt man den Modus -s.

<a href="AutoItSetOption.htm">Opt</a>("SendKeyDelay",...) ndert die Lnge der kurzen Pause zwischen gesendeten Tastenanschlgen.
<a href="AutoItSetOption.htm">Opt</a>("SendKeyDownDelay",...) ndert die Zeitspanne, die eine Taste niedergehalten wird, bevor diese wieder freigegeben wird.
Wird "SendKeyDelay" und "SendKeyDownDelay" auf 0 gesetzt, so werden alle Verzgerungen beim senden von Tasten entfernt. Dies kann unter bestimmten Umstnden notwendig sein, zum Beispiel wenn man mit ("#l") das System sperrt, um zu vermeiden, dass die WIN-Taste untengehalten wird.


###Related###
SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay (Option), ControlSend, BlockInput, HotKeySet, WinMenuSelectItem


###Example###
@@IncludeExample@@
